// 引入 axios
import axios from 'axios';
import METHOD from './methods';
import Loading from '../../components/loading/index';

const BASEURL = "https://api.it120.cc/small4";
// 创建 axios 配置实例
/**
 * 配置对象
 */
const axiosInstance = axios.create({
    baseURL:BASEURL,  // 默认会拼接到请求路径前面
    timeout:10000
});

let loading = null;
// 请求发送前，弹出loading组件
// 添加请求拦截器
axiosInstance.interceptors.request.use(function(config) {
    // 在发送请求之前做些什么
    // 弹起loading
    // this.$loading();
    loading = Loading.serve();
    return config;
},function(error) {
    // 对请求错误做些什么
    // 提示用户错误信息
    return Promise.reject(error);
});

// 请求结束后，收起loading组件
// 添加响应拦截器
axiosInstance.interceptors.response.use(function(response) {
    // 对响应数据做点什么
    // loading.close();
    return response;
},function(error) {
    // 对响应错误做点什么
    // loading.close();
    return Promise.reject(error);
});


// 请求方法
/**
 * 
 * @param {*} method  
 * @param {*} url 
 * @param {*} params 
 */
export function request(method,url,params){
    switch(method){
        case METHOD.GET:
            return GET(url,params);
        case METHOD.POST:
            return POST(url,params);
    }
}

// 请求方式
function GET(url,params){
    return axiosInstance.get(url,params);
}

function POST(url,params){
    return axiosInstance.post(url,params);
}